অ্যাপাচি নিফাই (Apache NiFi) একটি শক্তিশালী ডেটা ফ্লো ব্যবস্থাপনা প্ল্যাটফর্ম, যা ডেটা সংগ্রহ, প্রক্রিয়া এবং স্থানান্তর করতে ব্যবহৃত হয়। NiFi-তে Dynamic Property এবং Parameter দুটি গুরুত্বপূর্ণ কনফিগারেশন টুল, যা ফ্লো কনফিগারেশনকে আরও ডাইনামিক এবং নমনীয় করে তোলে। এগুলি ব্যবহার করে আপনি ফ্লো কনফিগারেশনকে সহজে পরিবর্তন করতে পারেন এবং আপনার ডেটা ফ্লো এর কার্যক্রম আরও উপযোগী করে তুলতে পারেন।
Dynamic Property
Dynamic Property কি?
Dynamic Property হল NiFi প্রোসেসর বা অন্যান্য উপাদানের কনফিগারেশনে ব্যবহার করা এমন প্রপার্টি (অথবা সেটিংস), যার মান NiFi Expression Language ব্যবহার করে রানটাইমের সময় পরিবর্তন করা যায়। এর মাধ্যমে আপনি একাধিক কনফিগারেশন মান নির্ধারণ করতে পারেন যা প্রোসেসরের কার্যক্রমের উপর ভিত্তি করে পরিবর্তিত হবে।
Dynamic Property ব্যবহারের সুবিধা
- ডাইনামিক কনফিগারেশন: প্রপার্টির মান NiFi Expression Language ব্যবহার করে রানটাইমে পরিবর্তিত হতে পারে, যা কনফিগারেশনকে আরও নমনীয় এবং ডাইনামিক করে তোলে।
- স্বয়ংক্রিয় কনফিগারেশন: আপনি একাধিক ফ্লো বা প্রোসেসরের জন্য একক মান নির্ধারণ না করে, একাধিক ডাইনামিক প্রপার্টি ব্যবহার করে বিভিন্ন কনফিগারেশন সিচুয়েশন তৈরি করতে পারেন।
- ফ্লেক্সিবিলিটি: Dynamic Property দিয়ে আপনি একই প্রোসেসর বা কনফিগারেশনে একাধিক মান প্রয়োগ করতে পারেন, যা বিভিন্ন পরিস্থিতিতে কাজ করতে সহায়তা করে।
উদাহরণ:
ধরা যাক, আপনি একটি প্রোসেসর দিয়ে ফাইল পাথ নির্ধারণ করতে চান এবং সেই পাথটি NiFi Expression Language ব্যবহার করে নির্দিষ্ট শর্ত অনুযায়ী পরিবর্তন করতে চান।
- Dynamic Property:
file.path - Value:
${if(${file.type} == 'csv'):'/data/csv' : '/data/json'}
এই Dynamic Property-টি ডেটার টাইপ (যেমন csv বা json) অনুযায়ী ফাইল পাথ নির্ধারণ করবে।
কনফিগারেশন:
- Property Name:
file.path - Property Value:
${if(${file.type} == 'csv'):'/data/csv' : '/data/json'}
এটি NiFi Expression Language এর মাধ্যমে ডাইনামিকভাবে পাথ পরিবর্তন করবে, যেখানে ফাইলের টাইপের উপর ভিত্তি করে পাথ পরিবর্তিত হবে।
Parameter
Parameter কি?
Parameter NiFi-তে এমন একটি কনফিগারেশন মান যা টেমপ্লেট বা ডেটা ফ্লোর বিভিন্ন অংশে ব্যবহার করা যেতে পারে। Parameters গুলি ফ্লো কনফিগারেশনকে আরও পুনঃব্যবহারযোগ্য এবং কনফিগারেবল করে তোলে, কারণ আপনি একাধিক প্রোসেসর বা ফ্লো গ্রুপে একই ভ্যালু রিইউজ করতে পারেন।
Parameter ব্যবহারের সুবিধা
- একাধিক ফ্লো বা প্রোসেসরের জন্য একই মান: Parameters এর মাধ্যমে আপনি একাধিক ফ্লো বা প্রোসেসরে একই কনফিগারেশন মান ব্যবহার করতে পারেন।
- ফ্লেক্সিবিলিটি: Parameters ব্যবহার করে আপনি সহজেই কনফিগারেশন পরিবর্তন করতে পারেন এবং সেই পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে সমস্ত প্রোসেসরে প্রভাব ফেলবে।
- কাস্টমাইজেশন: Parameters এর মাধ্যমে ফ্লো কনফিগারেশনে কাস্টম মান নির্ধারণ করা সম্ভব, যা ব্যবহারের সময় পরিবর্তনশীল হতে পারে।
উদাহরণ:
ধরা যাক, আপনি একটি ডেটাবেসে সংযোগ করতে চান এবং সেই সংযোগের জন্য ইউজারনেম, পাসওয়ার্ড এবং ইউআরএল কনফিগার করতে চান।
- Parameter Name:
db.username - Parameter Value:
myuser - Parameter Name:
db.password - Parameter Value:
mypassword - Parameter Name:
db.url - Parameter Value:
jdbc:mysql://localhost:3306/mydb
এগুলি Parameters হিসেবে ব্যবহার করা যেতে পারে এবং সেই মান একাধিক প্রোসেসর বা ফ্লো গ্রুপে রিইউজ করা যাবে। আপনি যখন এক বা একাধিক প্রোসেসরের মধ্যে একটি Parameter ব্যবহার করবেন, তখন সেটি কাস্টমাইজড ভ্যালু হিসেবে কাজ করবে।
কনফিগারেশন:
- Parameter Context তৈরি: প্রথমে NiFi UI থেকে Parameter Context তৈরি করুন এবং এতে ইউজারনেম, পাসওয়ার্ড এবং ইউআরএল সম্পর্কিত Parameters যোগ করুন।
- Parameter ব্যবহার: এরপর প্রোসেসর বা ফ্লো গ্রুপে এই Parameters রেফারেন্স করে ডেটাবেস সংযোগের জন্য কনফিগারেশন সেট করুন।
Dynamic Property এবং Parameter এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Dynamic Property | Parameter |
|---|---|---|
| ব্যবহার | একক প্রোসেসরের কনফিগারেশনে প্রপার্টি মান পরিবর্তন করা | একাধিক প্রোসেসর বা ফ্লো গ্রুপে পুনঃব্যবহারযোগ্য কনফিগারেশন |
| ভ্যালু পরিবর্তন | NiFi Expression Language ব্যবহার করে রানটাইমে মান পরিবর্তন | নির্দিষ্ট মান দিয়ে কনফিগার করা, যা বিভিন্ন ফ্লোতে রিইউজ করা যায় |
| ব্যবহারের পরিসর | একটি নির্দিষ্ট প্রোসেসরের জন্য | একাধিক প্রোসেসর বা গ্রুপে ব্যবহৃত হতে পারে |
| সিনট্যাক্স | NiFi Expression Language | সাধারণ ভ্যালু বা কাস্টম প্যারামিটার |
সারাংশ
Dynamic Property এবং Parameter NiFi-এর দুটি গুরুত্বপূর্ণ কনফিগারেশন টুল, যা ডেটা ফ্লো এবং প্রোসেসর কনফিগারেশনকে আরও ডাইনামিক, নমনীয় এবং পুনঃব্যবহারযোগ্য করে তোলে। Dynamic Property ব্যবহার করে আপনি রানটাইমে প্রোসেসরের প্রপার্টির মান পরিবর্তন করতে পারেন, যেখানে Parameter দিয়ে আপনি একাধিক ফ্লো বা প্রোসেসরের জন্য একক কনফিগারেশন মান ব্যবহার করতে পারেন। এদের মাধ্যমে আপনি আপনার NiFi ডেটা ফ্লো আরো সহজে কাস্টমাইজ এবং পরিচালনা করতে পারবেন।
Read more